package co.edu.usbcali.rebio.exceptions;

public class ZMessManager extends Exception {
    private static final long serialVersionUID = 1L;
    public final static String ALL = "All ";
    public final static String ENTCHILD = "related tables(childs)";
    public final static String FOREIGNDATA = "foreign classes data: ";
    public static String ENTITY_SUCCESFULLYSAVED = "Entidad almacenada con exito";
    public static String ENTITY_SUCCESFULLYDELETED = "Entidad eliminada con exito ";
    public static String ENTITY_SUCCESFULLYMODIFIED = "Entidad modificada con exito ";
    public static String ENTITY_WITHSAMEKEY = "Se encontro otra entidad con la misma clave";
    public static String ENTITY_WITHSAMENAME = "Solo debe existir un registro con el mismo nombre";
    public static String ENTITY_NOENTITYTOUPDATE = "No se encontro la entidad con el dato ingresado ";

    public ZMessManager() {
    }

    public ZMessManager(String exception) {
        super(exception);
    }

    public class NotValidFieldException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public NotValidFieldException(String info) {
            super("El valor del campo:\"" + info + "\" no es valido");
        }
    }

    public class EmptyFieldException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public EmptyFieldException(String info) {
            super("El campo: \"" + info +
                "\"esta vacio ");
        }
    }

    public class NotValidFormatException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public NotValidFormatException(String info) {
            super("El valor o longitud del campo: \"" + info +
                "\" no es valido");
        }
    }

    public class DeletingException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public DeletingException(String info) {
            super("La entidad que esta tratando de eliminar " +
                "puede tener informacion relacion con otras tablas, " +
                "Por favor antes de intentarlo, " +
                "comprobar los datos de la entidad, \"" + info + "\"");
        }
    }

    public class ForeignException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public ForeignException(String info) {
            super("No hay ningun dato relacionado con lo digitado \"" + info + "\"");
        }
    }

    public class GettingException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public GettingException(String info) {
            super("Hubo una excepcion capturando " + info);
        }
    }

    public class FindingException extends ZMessManager {
        private static final long serialVersionUID = 1L;

        public FindingException(String info) {
            super("Huvo una excepcion intentando encontrar " + info);
        }
    }
}
